//----------------------------------------------------------- // Purpose: Check pattern using a stack // Author: John Gauch //----------------------------------------------------------- #include "stack3/stack3.h" #include #include using namespace std; //----------------------------------------------------------- // Check that pattern is of the form aaabbb //----------------------------------------------------------- bool check_pattern(string str) { Stack stack; // Read and process input string for(unsigned int i=0; i < str.length(); i++) { if(str[i] == 'a') stack.Push('a'); else if (str[i] == 'b') stack.Pop(); } // Check if stack is empty if (stack.IsEmpty()) return true; else return false; } //----------------------------------------------------------- // Main program. //----------------------------------------------------------- int main() { cout << "Enter pattern: "; string str; cin >> str; if (check_pattern(str)) cout << "Pattern matches" << endl; else cout << "Pattern does NOT match" << endl; return 0; }